// 产品详情接口相关类型定义

// 材料信息
export interface Material {
  id: string
  name: string
  brand: string
  model: string
  price: number
  unit: string
  description: string
  image: string
}

// 子类别（具体施工项）
export interface SubCategory {
  id: string
  name: string
  description: string
  image: string
  isRequired: boolean
  material: Material
}

// 类别类型
export type CategoryType = 'basic' | 'plumbing' | 'material' | 'labor' | 'appliance' | 'warranty'

// 类别（如基础工程、水电改造等）
export interface Category {
  id: string
  name: string
  type: CategoryType
  unit: string
  subCategories: SubCategory[]
}

// 套餐描述（包含多个类别）
export interface PackageDescription {
  categories: Category[]
}

// 套餐类型：1-经济型，2-舒适型，3-豪华型
export type PackageType = 1 | 2 | 3

// 套餐信息
export interface ProductPackage {
  id: number
  isDefault?: boolean
  packageType: PackageType
  name: string
  description: string
  image: string
}

// 可用材料类别信息
export interface AvailableMaterial {
  id: number
  categoryName: string
}

// 产品信息
export interface ProductInfo {
  id: number
  name: string
  description: string
  images: string[]
  duration: string
  spaceSize: number // 空间面积
  buildSize: number // 建筑面积
  style: ProductStyle // 产品风格
  colorScheme: ColorScheme // 色彩方案
  defaultPackage: ProductPackage // 默认套餐
  availablePackages: ProductPackage[] // 可用套餐列表
  availableMaterials: AvailableMaterial[] // 可用材料类别列表
  packageMaterials: IProductCalculatePriceResponse // 默认套餐材料清单和价格
}

// 产品详情响应
export interface IProductInfoResponse {
  product: ProductInfo
}

export interface Product {
  id: number
  productName: string
  icon: string
}
export interface IProductListResponse {
  products: Product[]
}

// 产品卡片信息（带价格的产品列表）
export interface ProductCard {
  id: number
  packageId: number
  snapShotId: number
  name: string
  description: string
  duration: string
  spaceSize: number
  buildSize: number
  style: ProductStyle
  colorScheme: ColorScheme
  totalPrice: number
}

// 产品卡片列表响应
export interface IProductCardListResponse {
  listProduct: ProductCard[]
  summary: {
    categories: CalculateCategory[]
    totalPrice: number | string
  }
}

// 价格计算相关类型定义

// 材料信息（用于价格计算）
export interface CalculateMaterial {
  id: number
  categoryId: number
  name: string
  brand: string
  description: string
  unit: string
  price: number
  image: string
}

// 子类别（用于价格计算）
export interface CalculateSubCategory {
  belong: string
  belongId: number
  id: number
  title: string
  description: string
  image: string
  materials: CalculateMaterial[]
  totalPrice: number | string
}

// 类别（用于价格计算）
export interface CalculateCategory {
  id: number | string
  categoryName: string
  subCategories: CalculateSubCategory[]
  totalPrice: number | string
}

// 价格计算数据
export interface IProductCalculatePriceResponse {
  categories: CalculateCategory[]
  totalPrice: number
}

// 风格相关类型定义

// 产品风格
export interface ProductStyle {
  id: number
  name: string
  description: string
  image: string
  features: string[]
}

// 风格列表响应
export interface IProductStylesResponse {
  styles: ProductStyle[]
}

// 色彩方案相关类型定义

// 色彩方案
export interface ColorScheme {
  id: number
  name: string
  description: string
  colors: string[]
}

// 色彩方案列表响应
export interface IProductColorSchemesResponse {
  colorSchemes: ColorScheme[]
}

// 材料响应类型（用于材料列表API）
export interface MaterialItem {
  id: number
  categoryId: number
  name: string
  brand: string
  model?: string // 可选字段，型号
  description: string
  unit: string // 计价单位：sqm(平方米), item(件), meter(米)等
  price: number
  image: string
}

// 子类别信息（包含材料列表）
export interface MaterialSubCategory {
  belong: string // 归属类型：Normal, Premium, Luxury等
  id: number
  title: string
  description: string
  image: string
  materials?: MaterialItem[] // 可选：该子类别下的材料列表
}

// 材料类别信息
export interface MaterialCategory {
  id: number
  categoryName: string
  subCategories: MaterialSubCategory[]
}

// 材料列表响应
export interface IMaterialResponse {
  categories: MaterialCategory
}

// 订单相关类型定义

// 订单地址信息
export interface OrderAddress {
  id: number
  uid: string
  name: string
  phone: string
  address: string
  isDefault: boolean
}

// 订单产品信息
export interface OrderProduct {
  images: string[]
  name: string
  description: string
  duration: string
  spaceUnit: string
  spaceSize: number
  buildSize: number
  style: ProductStyle
  colorScheme: ColorScheme
  materialCategories: MaterialCategory[]
  amount: number
}

// 订单信息
export interface Order {
  orderNo: string
  totalPrice: number
  address: OrderAddress
  products: OrderProduct[]
}

// 订单列表响应
export interface IOrderListResponse {
  orders: Order[]
}

// 订单详情响应
export interface IOrderDetailResponse {
  detail: Order
}
